{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "from bs4 import BeautifulSoup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "headers = {\n",
    "    \"User-Agent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36\"\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Movie:\n",
    "    \n",
    "    def __init__(self):\n",
    "        self.rank = 0\n",
    "        self.star = 0\n",
    "        self.title = None\n",
    "        self.stars = None\n",
    "        self.time = None\n",
    "    \n",
    "    def __str__(self):\n",
    "        return (\"{}\\t《{}》\\t{}\\t{}\\t{}\".format(self.rank,self.title,self.stars,self.time,self.star))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "def parse(url):\n",
    "    response = requests.get(url,headers = headers)\n",
    "    if response.status_code == 200:\n",
    "        movie_list = []\n",
    "        html = response.text\n",
    "        soup = BeautifulSoup(html,'lxml')\n",
    "        dl = soup.find('dl',{'class':'board-wrapper'})\n",
    "        for dd in dl.find_all('dd'):\n",
    "            movie = Movie()\n",
    "            rank = dd.i.text.strip()\n",
    "            body = dd.find('div',{'class':'movie-item-info'})\n",
    "            star = dd.find('div',{'class':'movie-item-number score-num'}).text.strip()\n",
    "            title,stars,time = tuple(body.find_all('p'))\n",
    "            movie.rank = rank\n",
    "            movie.title = title.a.get('title')\n",
    "            movie.stars = stars.text.strip()\n",
    "            movie.time = time.text.strip()\n",
    "            movie.star = star\n",
    "            movie_list.append(movie)\n",
    "        return movie_list\n",
    "    else:\n",
    "        return None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "movie_list = []\n",
    "for page_num in range(10):\n",
    "    url = 'https://maoyan.com/board/4?offset={}'.format(page_num*10)\n",
    "    movies = parse(url)\n",
    "    if movies is not None:\n",
    "        movie_list.extend(movies)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\t《霸王别姬》\t主演：张国荣,张丰毅,巩俐\t上映时间：1993-01-01\t9.5\n",
      "2\t《肖申克的救赎》\t主演：蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿\t上映时间：1994-09-10(加拿大)\t9.5\n",
      "3\t《罗马假日》\t主演：格利高里·派克,奥黛丽·赫本,埃迪·艾伯特\t上映时间：1953-09-02(美国)\t9.1\n",
      "4\t《这个杀手不太冷》\t主演：让·雷诺,加里·奥德曼,娜塔莉·波特曼\t上映时间：1994-09-14(法国)\t9.5\n",
      "5\t《泰坦尼克号》\t主演：莱昂纳多·迪卡普里奥,凯特·温丝莱特,比利·赞恩\t上映时间：1998-04-03\t9.5\n",
      "6\t《唐伯虎点秋香》\t主演：周星驰,巩俐,郑佩佩\t上映时间：1993-07-01(中国香港)\t9.1\n",
      "7\t《魂断蓝桥》\t主演：费雯·丽,罗伯特·泰勒,露塞尔·沃特森\t上映时间：1940-05-17(美国)\t9.2\n",
      "8\t《乱世佳人》\t主演：费雯·丽,克拉克·盖博,奥利维娅·德哈维兰\t上映时间：1939-12-15(美国)\t9.1\n",
      "9\t《天空之城》\t主演：寺田农,鹫尾真知子,龟山助清\t上映时间：1992-05-01\t9.0\n",
      "10\t《辛德勒的名单》\t主演：连姆·尼森,拉尔夫·费因斯,本·金斯利\t上映时间：1993-12-15(美国)\t9.2\n",
      "11\t《喜剧之王》\t主演：周星驰,莫文蔚,张柏芝\t上映时间：1999-02-13(中国香港)\t9.1\n",
      "12\t《音乐之声》\t主演：朱莉·安德鲁斯,克里斯托弗·普卢默,埃琳诺·帕克\t上映时间：1965-03-02(美国)\t9.0\n",
      "13\t《大闹天宫》\t主演：邱岳峰,毕克,富润生\t上映时间：1965-12-31\t9.0\n",
      "14\t《春光乍泄》\t主演：张国荣,梁朝伟,张震\t上映时间：1997-05-30(中国香港)\t9.2\n",
      "15\t《剪刀手爱德华》\t主演：约翰尼·德普,薇诺娜·瑞德,黛安·韦斯特\t上映时间：1990-12-06(美国)\t8.8\n",
      "16\t《美丽人生》\t主演：罗伯托·贝尼尼,尼可莱塔·布拉斯基,乔治·坎塔里尼\t上映时间：1997-12-20(意大利)\t9.3\n",
      "17\t《海上钢琴师》\t主演：蒂姆·罗斯,普路特·泰勒·文斯,比尔·努恩\t上映时间：1998-10-28(意大利)\t9.2\n",
      "18\t《黑客帝国》\t主演：基努·里维斯,凯瑞-安·莫斯,劳伦斯·菲什伯恩\t上映时间：2000-01-14\t9.0\n",
      "19\t《哈利·波特与魔法石》\t主演：丹尼尔·雷德克里夫,鲁伯特·格林特,艾玛·沃特森\t上映时间：2002-01-26\t9.1\n",
      "20\t《指环王3：王者无敌》\t主演：伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒\t上映时间：2004-03-15\t9.2\n",
      "21\t《蝙蝠侠：黑暗骑士》\t主演：克里斯蒂安·贝尔,希斯·莱杰,阿伦·伊克哈特\t上映时间：2008-07-18(美国)\t9.3\n",
      "22\t《无间道》\t主演：刘德华,梁朝伟,黄秋生\t上映时间：2003-09-05\t9.1\n",
      "23\t《楚门的世界》\t主演：金·凯瑞,劳拉·琳妮,诺亚·艾默里奇\t上映时间：1998-06-01(美国)\t8.9\n",
      "24\t《加勒比海盗》\t主演：约翰尼·德普,凯拉·奈特莉,奥兰多·布鲁姆\t上映时间：2003-11-21\t8.9\n",
      "25\t《射雕英雄传之东成西就》\t主演：张国荣,梁朝伟,张学友\t上映时间：1993-02-05(中国香港)\t8.9\n",
      "26\t《教父2》\t主演：阿尔·帕西诺,罗伯特·德尼罗,黛安·基顿\t上映时间：1974-12-12(美国)\t9.0\n",
      "27\t《机器人总动员》\t主演：本·贝尔特,艾丽莎·奈特,杰夫·格尔林\t上映时间：2008-06-27(美国)\t9.3\n",
      "28\t《指环王1：护戒使者》\t主演：伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒\t上映时间：2002-04-04\t9.0\n",
      "29\t《指环王2：双塔奇兵》\t主演：伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒\t上映时间：2003-04-25\t9.1\n",
      "30\t《狮子王》\t主演：马修·布罗德里克,尼基塔·卡兰姆,詹姆斯·厄尔·琼斯\t上映时间：1995-07-15\t8.8\n",
      "31\t《活着》\t主演：葛优,巩俐,牛犇\t上映时间：1994-05-18(法国)\t9.0\n",
      "32\t《天堂电影院》\t主演：菲利浦·诺瓦雷,赛尔乔·卡斯特利托,蒂兹亚娜·罗达托\t上映时间：1988-11-17(意大利)\t9.2\n",
      "33\t《拯救大兵瑞恩》\t主演：汤姆·汉克斯,马特·达蒙,汤姆·塞兹摩尔\t上映时间：1998-11-13\t8.9\n",
      "34\t《盗梦空间》\t主演：莱昂纳多·迪卡普里奥,渡边谦,约瑟夫·高登-莱维特\t上映时间：2010-09-01\t9.2\n",
      "35\t《哈尔的移动城堡》\t主演：倍赏千惠子,木村拓哉,美轮明宏\t上映时间：2004-11-20(日本)\t9.0\n",
      "36\t《忠犬八公的故事》\t主演：Forest,理查·基尔,琼·艾伦\t上映时间：2010-03-12(英国)\t9.3\n",
      "37\t《疯狂原始人》\t主演：尼古拉斯·凯奇,艾玛·斯通,瑞安·雷诺兹\t上映时间：2013-04-20\t9.5\n",
      "38\t《东邪西毒》\t主演：张国荣,梁朝伟,刘嘉玲\t上映时间：1994-09-17\t8.8\n",
      "39\t《幽灵公主》\t主演：松田洋治,石田百合子,田中裕子\t上映时间：1998-05-01\t8.9\n",
      "40\t《阿凡达》\t主演：萨姆·沃辛顿,佐伊·索尔达娜,米歇尔·罗德里格兹\t上映时间：2010-01-04\t9.0\n",
      "41\t《搏击俱乐部》\t主演：爱德华·哈里森·诺顿,布拉德·皮特,海伦娜·伯翰·卡特\t上映时间：1999-10-15(美国)\t8.8\n",
      "42\t《风之谷》\t主演：岛本须美,永井一郎,坂本千夏\t上映时间：1992\t8.9\n",
      "43\t《十二怒汉》\t主演：亨利·方达,李·科布,马丁·鲍尔萨姆\t上映时间：1957-04-13(美国)\t9.1\n",
      "44\t《V字仇杀队》\t主演：娜塔莉·波特曼,雨果·维文,斯蒂芬·瑞\t上映时间：2006-03-17(美国)\t8.8\n",
      "45\t《当幸福来敲门》\t主演：威尔·史密斯,贾登·史密斯,坦迪·牛顿\t上映时间：2008-01-17\t8.9\n",
      "46\t《速度与激情5》\t主演：范·迪塞尔,保罗·沃克,道恩·强森\t上映时间：2011-05-12\t9.2\n",
      "47\t《驯龙高手》\t主演：杰伊·巴鲁切尔,杰拉德·巴特勒,亚美莉卡·费雷拉\t上映时间：2010-05-14\t9.0\n",
      "48\t《放牛班的春天》\t主演：热拉尔·朱尼奥,让-巴蒂斯特·莫尼耶,玛丽·布奈尔\t上映时间：2004-10-16\t8.8\n",
      "49\t《勇敢的心》\t主演：梅尔·吉布森,苏菲·玛索,帕特里克·麦高汉\t上映时间：1995-05-24(美国)\t8.8\n",
      "50\t《神偷奶爸》\t主演：史蒂夫·卡瑞尔,杰森·席格尔,拉塞尔·布兰德\t上映时间：2010-07-09(美国)\t9.0\n",
      "51\t《闻香识女人》\t主演：阿尔·帕西诺,克里斯·奥唐纳,加布里埃尔·安瓦尔\t上映时间：1992-12-23(美国)\t8.8\n",
      "52\t《飞屋环游记》\t主演：爱德华·阿斯纳,乔丹·长井,鲍勃·彼德森\t上映时间：2009-08-04\t8.9\n",
      "53\t《怦然心动》\t主演：玛德琳·卡罗尔,卡兰·麦克奥利菲,艾丹·奎因\t上映时间：2010-08-06(美国)\t8.9\n",
      "54\t《三傻大闹宝莱坞》\t主演：阿米尔·汗,黄渤,卡琳娜·卡普\t上映时间：2011-12-08\t9.1\n",
      "55\t《断背山》\t主演：希斯·莱杰,杰克·吉伦哈尔,米歇尔·威廉姆斯\t上映时间：2006-01-13(美国)\t9.0\n",
      "56\t《黑客帝国3：矩阵革命》\t主演：基努·里维斯,雨果·维文,凯瑞-安·莫斯\t上映时间：2003-11-05\t8.8\n",
      "57\t《末代皇帝》\t主演：尊龙,陈冲,彼得·奥图尔\t上映时间：1987-10-23\t8.8\n",
      "58\t《少年派的奇幻漂流》\t主演：苏拉·沙玛,伊尔凡·可汗,塔布\t上映时间：2012-11-22\t9.1\n",
      "59\t《鬼子来了》\t主演：姜文,姜宏波,陈强\t上映时间：2000-05-12(法国戛纳)\t8.9\n",
      "60\t《大话西游之月光宝盒》\t主演：周星驰,莫文蔚,吴孟达\t上映时间：2014-10-24\t9.6\n",
      "61\t《致命魔术》\t主演：休·杰克曼,克里斯蒂安·贝尔,迈克尔·凯恩\t上映时间：2006-10-20(美国)\t8.8\n",
      "62\t《蝙蝠侠：黑暗骑士崛起》\t主演：克里斯蒂安·贝尔,迈克尔·凯恩,加里·奥德曼\t上映时间：2012-08-27\t8.9\n",
      "63\t《美丽心灵》\t主演：罗素·克洛,詹妮弗·康纳利,艾德·哈里斯\t上映时间：2001-12-21(美国)\t8.8\n",
      "64\t《哈利·波特与死亡圣器（下）》\t主演：丹尼尔·雷德克里夫,鲁伯特·格林特,艾玛·沃特森\t上映时间：2011-08-04\t9.0\n",
      "65\t《无敌破坏王》\t主演：约翰·C·赖利,萨拉·西尔弗曼,简·林奇\t上映时间：2012-11-06\t9.1\n",
      "66\t《倩女幽魂》\t主演：张国荣,王祖贤,午马\t上映时间：2011-04-30\t9.2\n",
      "67\t《钢琴家》\t主演：艾德里安·布洛迪,艾米莉娅·福克斯,米哈乌·热布罗夫斯基\t上映时间：2002-09-25(法国)\t8.8\n",
      "68\t《夜访吸血鬼》\t主演：汤姆·克鲁斯,布拉德·皮特,克尔斯滕·邓斯特\t上映时间：1994-11-11(美国)\t8.8\n",
      "69\t《本杰明·巴顿奇事》\t主演：布拉德·皮特,凯特·布兰切特,塔拉吉·P·汉森\t上映时间：2008-12-25(美国)\t8.8\n",
      "70\t《甜蜜蜜》\t主演：黎明,张曼玉,曾志伟\t上映时间：2015-02-13\t9.2\n",
      "71\t《初恋这件小事》\t主演：马里奥·毛瑞尔,平采娜·乐维瑟派布恩,阿查拉那·阿瑞亚卫考\t上映时间：2012-06-05\t8.8\n",
      "72\t《熔炉》\t主演：孔刘,郑有美,金智英\t上映时间：2011-09-22(韩国)\t8.8\n",
      "73\t《触不可及》\t主演：弗朗索瓦·克鲁塞,奥玛·希,安娜·勒尼\t上映时间：2011-11-02(法国)\t9.1\n",
      "74\t《新龙门客栈》\t主演：张曼玉,梁家辉,甄子丹\t上映时间：2012-02-24\t8.8\n",
      "75\t《小鞋子》\t主演：默罕默德·阿米尔·纳吉,Kamal Mirkarimi,Behzad Rafi\t上映时间：1999-01-22(美国)\t9.0\n",
      "76\t《大话西游之大圣娶亲》\t主演：周星驰,朱茵,莫文蔚\t上映时间：2014-10-24\t8.8\n",
      "77\t《萤火之森》\t主演：内山昂辉,佐仓绫音,后藤弘树\t上映时间：2011-09-17(日本)\t9.0\n",
      "78\t《教父》\t主演：马龙·白兰度,阿尔·帕西诺,詹姆斯·肯恩\t上映时间：2015-04-18\t9.3\n",
      "79\t《素媛》\t主演：李来,薛耿求,严志媛\t上映时间：2013-10-02(韩国)\t9.1\n",
      "80\t《穿条纹睡衣的男孩》\t主演：阿沙·巴特菲尔德,维拉·法梅加,大卫·休里斯\t上映时间：2008-09-12(英国)\t9.0\n",
      "81\t《时空恋旅人》\t主演：瑞秋·麦克亚当斯,多姆纳尔·格里森,比尔·奈伊\t上映时间：2013-09-04(英国)\t8.9\n",
      "82\t《窃听风暴》\t主演：乌尔里希·穆埃,塞巴斯蒂安·科赫,马蒂娜·格德克\t上映时间：2006-03-23(德国)\t9.0\n",
      "83\t《7号房的礼物》\t主演：柳承龙,郑镇荣,朴信惠\t上映时间：2013-01-23(韩国)\t8.9\n",
      "84\t《恐怖直播》\t主演：河正宇,李璟荣,李大为\t上映时间：2013-07-31(韩国)\t8.8\n",
      "85\t《海豚湾》\t主演：里克·奥巴瑞,路易·西霍尤斯,哈迪·琼斯\t上映时间：2009-07-31(美国)\t8.9\n",
      "86\t《忠犬八公物语》\t主演：仲代达矢,春川真澄,井川比佐志\t上映时间：1987-08-01(日本)\t9.0\n",
      "87\t《上帝之城》\t主演：亚历桑德雷·罗德里格斯,艾莉丝·布拉加,莱安德鲁·菲尔米诺\t上映时间：2002-08-30(巴西)\t8.9\n",
      "88\t《美国往事》\t主演：罗伯特·德尼罗,詹姆斯·伍兹,伊丽莎白·麦戈文\t上映时间：2015-04-23\t9.1\n",
      "89\t《完美的世界》\t主演：凯文·科斯特纳,克林特·伊斯特伍德,T·J·劳瑟\t上映时间：1993-11-24(美国)\t8.9\n",
      "90\t《七武士》\t主演：三船敏郎,志村乔,千秋实\t上映时间：1954-04-26(日本)\t9.1\n",
      "91\t《一一》\t主演：吴念真,金燕玲,李凯莉\t上映时间：2000-09-20(法国)\t8.9\n",
      "92\t《英雄本色》\t主演：狄龙,张国荣,周润发\t上映时间：2017-11-17\t9.2\n",
      "93\t《阿飞正传》\t主演：张国荣,张曼玉,刘德华\t上映时间：2018-06-25\t8.8\n",
      "94\t《爱·回家》\t主演：俞承豪,金艺芬,童孝熙\t上映时间：2002-04-05(韩国)\t9.0\n",
      "95\t《海洋》\t主演：雅克·贝汉,姜文,兰斯洛特·佩林\t上映时间：2011-08-12\t9.0\n",
      "96\t《我爱你》\t主演：宋在浩,李顺才,尹秀晶\t上映时间：2011-02-17(韩国)\t9.0\n",
      "97\t《黄金三镖客》\t主演：克林特·伊斯特伍德,李·范·克里夫,埃里·瓦拉赫\t上映时间：1966-12-23(意大利)\t8.9\n",
      "98\t《迁徙的鸟》\t主演：雅克·贝汉,Philippe Labro\t上映时间：2001-12-12(法国)\t9.1\n",
      "99\t《龙猫》\t主演：秦岚,糸井重里,岛本须美\t上映时间：2018-12-14\t9.1\n",
      "100\t《千与千寻》\t主演：柊瑠美,周冬雨,入野自由\t上映时间：2019-06-21\t9.3\n"
     ]
    }
   ],
   "source": [
    "for movie in movie_list:\n",
    "    print(movie)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
